package com.xiao.wiki.tool.core.map;

import java.util.HashMap;
import java.util.LinkedHashMap;

/**
 * @author ：降蓝
 * @description：Map相关工具类
 */
public class MapUtil {
    /**
     *默认初始大小
     */
    public static final int DEFAULT_INITIAL_CAPACITY = 16;

    /**
     * 新建一个HashMap
     *
     * @param size  初始大小，由于默认负载因子0.75，传入的size会实现初始大小为size / 0.75 + 1
     * @param isOrder Map的key是否有序，有序返回 {@link LinkedHashMap},否则返回{@link HashMap}
     * @param <K>   key类型
     * @param <V>   Value类型
     * @return HashMap 对象
     */
    public static <K, V>HashMap<K, V> newHashMap(int size, boolean isOrder) {
        int initialCapacity = (int) (size / DEFAULT_INITIAL_CAPACITY) + 1;
        return isOrder ? new LinkedHashMap<>(initialCapacity) : new HashMap<>(initialCapacity);
    }

}
